Business Intelligence (BI) database systems process extremely complex queries upon massive amounts of data. This capability is important to modern enterprises, which rely upon the collection, integration, and analysis of an expanding sea of information.
In BI databases, it is quite difficult to predict in advance the performance characteristics (execution time, resource usage and contention, etc.) of executing a business intelligence workload on a given database system configuration, especially when the workload is executed in multiple streams. Enormous amounts of data are stored in the database, and large variances exist in the amount of data processed for each query. Furthermore, predicting the exact amount of data that will be processed for a given query is challenging. Variances in the times needed to execute individual queries can cause wait time to significantly outweigh execution time for a given query. Such variances add to the difficulty in estimating the time needed to execute a query that will run at the same time as other unknown queries.
Database designers can realize many business benefits if they can accurately predict performance of executing queries in a database. By way of example, database designers can more efficiently design a database system for running workloads of customers. Such databases can more accurately be selected with respect to size, capacity, performance, management, and cost, to name a few examples.